package com.baizhi.staticproxy;

/**
 * 代理角色：经纪人
 * 经纪人需要代理演员，所以需要绑定演员，代理角色中有一个属性(需要一个真实角色的引用)
 */
public class Proxy implements Management {
    private Actor actor;//刘亦菲

    public Proxy(Actor actor) {
        this.actor = actor;
    }

    @Override
    public void eat() {
        System.out.println("代理 查询一下是否有预约");  //真实角色执行方法之前，代理角色可以执行部分内容，增强真实角色的方法
        System.out.print("和");
        actor.eat(); //真实角色在吃饭
        System.out.println("代理 登记一下，某年某月某日"+actor.getName() +"和陌生男子一起吃饭");
    }

    @Override
    public void sing() {
        System.out.println("代理 查询一下是否有预约");  //真实角色执行方法之前，代理角色可以执行部分内容，增强真实角色的方法
        System.out.print("和");
        actor.eat();
        System.out.println("代理 登记一下，某年某月某日"+actor.getName() +"和陌生男子一起唱歌");
    }

    @Override
    public void dance() {
        System.out.println("代理 查询一下是否有预约");  //真实角色执行方法之前，代理角色可以执行部分内容，增强真实角色的方法
        System.out.print("和");
        actor.dance();
        System.out.println("代理 登记一下，某年某月某日"+actor.getName() +"和陌生男子一起跳舞");
    }

    @Override
    public void film() {
        System.out.println("代理 查询一下是否有预约");  //真实角色执行方法之前，代理角色可以执行部分内容，增强真实角色的方法
        System.out.print("和");
        actor.dance();
        System.out.println("代理 登记一下，某年某月某日"+actor.getName() +"和陌生男子一起拍电影");
    }
}
